package com.tianyu.service.mqtt.model.enums;

import lombok.Getter;

import java.util.Arrays;

@Getter
public enum MessageTypeEnum {

	/**机库上电通知***/
	A_HANGAR_START("A10001"),
	/**机库下电通知***/
	A_HANGAR_STOP("A10002"),
	/**云盒上电通知***/
	A_BOX_START("A10003"),
	/**云盒下电通知***/
	A_BOX_STOP("A10004"),
	/**警情通知***/
	B_ALARM_MESSAGE("B10001"),
	
	/**图片上传完成通知***/
	S_MEDIA_MESSAGE("S10001"),
	
	
    //开始任务通知
    C_TASK_START("C10001"),
    //结束任务通知
    C_TASK_END("C10002"),
    // 拍照通知
    C_MEDIA_TACK_PICTURE("C10003"),
    //视频存储通知
    C_MEDIA_VIDEO_STORAGE("C10004"),
    //切换控制权
    C_CHANGE_PILOT("C10005"),
    //上传任务飞行航线
    C_PUSH_PLANLINE("C10006"),


    //开始直播通知
    C_LIVE_START("C20001"),
    //结束直播通知
    C_LIVE_END("C20002"),
    //直播时长到期
    C_LIVE_DEADLINE("C20003"),

    //实时建模开始通知
    C_MODEL_START("C30001"),
    // 推送实时建模图片
    C_MODEL_PUSH("C30002"),
    // 实时建模结束
    C_MODEL_END("C30003"),
    // 推送实时建模结果
    C_MODEL_RESULT("C30004"),


    // 推送实时AI结果
    D_AI_MESSAGE_COUNT("D10001"),

    D_AI_MESSAGE_LABEL("D10002"),

    D_AI_MESSAGE_LABEL_FACE("D10003"),

    D_AI_MESSAGE_LABEL_PLATE("D10004"),

    // 实时推送AI计数超阈值告警
    D_AI_MESSAGE_ALARM("D20001"),

    // 实时推送AI计数 进入区域告警
    D_AI_MESSAGE_REGION_IN("D20002"),

    // 实时推送AI计数 出区域告警
    D_AI_MESSAGE_REGION_OUT("D20003"),

    // 任务结束是否有AI消息推送
    D_AI_MESSAGE_TASK_END("D30001"),

    UNKNOWN("-1")
    ;

    private final String code;

    private MessageTypeEnum(String code) {
        this.code = code;
    }

    public String getMethod() {
        return code;
    }

    public static MessageTypeEnum find(String code) {
        return Arrays.stream(MessageTypeEnum.values()).filter(topicEnum -> topicEnum.code.equals(code)).findAny().orElse(UNKNOWN);
    }

}
